\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver}{
\section{Zebulon::Underwater::PrimitiveDriver Class Reference}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver}\index{Zebulon::Underwater::PrimitiveDriver@{Zebulon::Underwater::PrimitiveDriver}}
}


A JAUS Primitive Driver for the Underwater Vehicle.  


{\ttfamily \#include $<$primitivedriver.h$>$}\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a6b34089b785de28806b32ebbcf4b5b1b}{
int {\bfseries SetController} (\hyperlink{class_zebulon_1_1_m_c_u_1_1_interface}{MCU::Interface} $\ast$rabbit)}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a6b34089b785de28806b32ebbcf4b5b1b}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a9aafd28d0f58bb24ba5eba253190a33f}{
double {\bfseries GetHorizontalThrust} () const }
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a9aafd28d0f58bb24ba5eba253190a33f}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a29552382e2616513c2b979c6e8fe406a}{
double {\bfseries GetVerticalThrust} () const }
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a29552382e2616513c2b979c6e8fe406a}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_aefa063832ae81a864572a479ef5431fc}{
double {\bfseries GetSteering} () const }
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_aefa063832ae81a864572a479ef5431fc}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a3d9cf29281f1bf7bfb7572fd2baa8af3}{
void {\bfseries PrintWrenchEffort} () const }
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a3d9cf29281f1bf7bfb7572fd2baa8af3}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a98d9bed03db7f66c3abf55fccab37888}{
virtual int {\bfseries SetupService} ()}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a98d9bed03db7f66c3abf55fccab37888}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a0bd9b94edb7c9fe778ce933c7bcfb84a}{
virtual int {\bfseries Standby} ()}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a0bd9b94edb7c9fe778ce933c7bcfb84a}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a8e59613c66cb891fdf1d50b41d820217}{
virtual int {\bfseries Resume} ()}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a8e59613c66cb891fdf1d50b41d820217}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a5c1ea7887d57789fa93509fe5183dd79}{
virtual int {\bfseries SetWrenchEffort} (const Jaus::SetWrenchEffort $\ast$command)}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a5c1ea7887d57789fa93509fe5183dd79}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a23e2b9d35dbabb736e8acebfc64e70b8}{
virtual int {\bfseries ReportWrenchEffort} (const Jaus::QueryWrenchEffort $\ast$query)}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a23e2b9d35dbabb736e8acebfc64e70b8}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a1796122e11012507c80b8a8869df55ac}{
virtual int {\bfseries ReportPlatformSpecifications} (const Jaus::QueryPlatformSpecifications $\ast$query)}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a1796122e11012507c80b8a8869df55ac}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a80c85b78dd836b8c96ae6e1624a03f65}{
virtual int {\bfseries SetDiscreteDevices} (const Jaus::SetDiscreteDevices $\ast$command)}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a80c85b78dd836b8c96ae6e1624a03f65}

\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a7fee93ba4549c1cce0decfd12a1be829}{
virtual void {\bfseries PrintStatus} () const }
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a7fee93ba4549c1cce0decfd12a1be829}

\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a50a34bb56308c814ef574e5a0981e163}{
static void {\bfseries DriverThread} (void $\ast$args)}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a50a34bb56308c814ef574e5a0981e163}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_af3242caa71d6b8b748576fdcbd997421}{
CxUtils::Mutex \hyperlink{class_zebulon_1_1_underwater_1_1_primitive_driver_af3242caa71d6b8b748576fdcbd997421}{mDriverMutex}}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_af3242caa71d6b8b748576fdcbd997421}

\begin{DoxyCompactList}\small\item\em Mutex for thread protection. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a43fbadea55af3d451472fb20ad22fcfc}{
CxUtils::Thread \hyperlink{class_zebulon_1_1_underwater_1_1_primitive_driver_a43fbadea55af3d451472fb20ad22fcfc}{mDriverThread}}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a43fbadea55af3d451472fb20ad22fcfc}

\begin{DoxyCompactList}\small\item\em Thread which continuously sends drive commands to Rabbit. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_ac1a4c4b405e0c767935e4ed08a5ae657}{
double \hyperlink{class_zebulon_1_1_underwater_1_1_primitive_driver_ac1a4c4b405e0c767935e4ed08a5ae657}{mForwardThrust}}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_ac1a4c4b405e0c767935e4ed08a5ae657}

\begin{DoxyCompactList}\small\item\em Desired Forward thrust rate. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a21bd42287517bd5d225c83457d0f610a}{
double \hyperlink{class_zebulon_1_1_underwater_1_1_primitive_driver_a21bd42287517bd5d225c83457d0f610a}{mSteering}}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a21bd42287517bd5d225c83457d0f610a}

\begin{DoxyCompactList}\small\item\em Desired Steering rate. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a96c8bb21b3403e8d04eacf442d5c4d58}{
double \hyperlink{class_zebulon_1_1_underwater_1_1_primitive_driver_a96c8bb21b3403e8d04eacf442d5c4d58}{mVerticalThrust}}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a96c8bb21b3403e8d04eacf442d5c4d58}

\begin{DoxyCompactList}\small\item\em Desired Vertical thrust rate. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_aadcbd0867943d87c0bf4e46debeb3df9}{
CxUtils::Point3D \hyperlink{class_zebulon_1_1_underwater_1_1_primitive_driver_aadcbd0867943d87c0bf4e46debeb3df9}{mMotorThrusts}}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_aadcbd0867943d87c0bf4e46debeb3df9}

\begin{DoxyCompactList}\small\item\em Thrusts for the 3 motors on the vehicle x = left, y = right, z = vertical. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a219c8ce7e5d0c6094d360589bf46335e}{
\hyperlink{class_zebulon_1_1_m_c_u_1_1_interface}{MCU::Interface} $\ast$ \hyperlink{class_zebulon_1_1_underwater_1_1_primitive_driver_a219c8ce7e5d0c6094d360589bf46335e}{mRabbitInterface}}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a219c8ce7e5d0c6094d360589bf46335e}

\begin{DoxyCompactList}\small\item\em Pointer to interface to Rabbit motor controller. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_af46f6771db48db0e3b77ba2a0da0d3e0}{
Jaus::ReportPlatformSpecifications \hyperlink{class_zebulon_1_1_underwater_1_1_primitive_driver_af46f6771db48db0e3b77ba2a0da0d3e0}{mBaseSpecs}}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_af46f6771db48db0e3b77ba2a0da0d3e0}

\begin{DoxyCompactList}\small\item\em Base message containing Underwater vehicle specs. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_underwater_1_1_primitive_driver_a74fdf33093ff13c9777b53bbd23af8a3}{
unsigned int \hyperlink{class_zebulon_1_1_underwater_1_1_primitive_driver_a74fdf33093ff13c9777b53bbd23af8a3}{mWrenchEffortTimeMs}}
\label{class_zebulon_1_1_underwater_1_1_primitive_driver_a74fdf33093ff13c9777b53bbd23af8a3}

\begin{DoxyCompactList}\small\item\em Time in ms when last Set Wrench Effort command was received. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A JAUS Primitive Driver for the Underwater Vehicle. 

The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
\item 
C:/Users/Matt/Documents/School/Robotics/zebulon/v2/underwater/include/underwater/primitivedriver.h\end{DoxyCompactItemize}
